/**
 * 
 */
package com.cougil.uoc.seghismed.model.enums;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

import com.cougil.uoc.seghismed.utils.SeghismedEnum;

/**
 * Tipus enumerat que conté els diferents Grups Sanguinis
 * 
 * @author Ignacio Cougil Jares
 * 
 */
public enum GrupSanguini implements SeghismedEnum {

	A_POSITIU(1, "A+"), 
	A_NEGATIU(2, "A-"), 
	B_POSITIU(3, "B+"), 
	B_NEGATIU(4, "B-"), 
	AB_POSITIU(5, "AB+"), 
	AB_NEGATIU(6, "AB-"), 
	ZERO_POSITIU(7, "0+"), 
	ZERO_NEGATIU(8, "0-");

	private int id;
	private String nom;

	private GrupSanguini(int id, String nom) {
		this.id = id;
		this.nom = nom;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Enum#toString()
	 */
	@Override
	public String toString() {
		return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
			.append("id", id)
			.append("nom", nom)
			.toString();
	}

	// the valueOfMethod
	public static GrupSanguini fromInt(int value) {
		GrupSanguini gs = null;
		GrupSanguini grups[] = GrupSanguini.values();
		for (int i = 0; i < grups.length && gs == null; i++) {
			if (grups[i].toInt() == value) {
				gs = grups[i];
			}
		}
		return gs;
	}
	
	// the identifierMethod
    public int toInt() {
    	return id;
    }

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.cougil.uoc.seghismed.utils.SeghismedEnum#getNom()
	 */
	public String getNom() {
		return this.nom;
	}


}
